package com.jy.modules.cims.data.interact.core;

/***
 * 通用工具类
 * @author cxw
 *
 */
public class CommonUtil {
    private static final String RET_CODE_SUC = "0000";
    private static final String RET_CODE_FAIL = "0001";
    private static final String RET_CODE_DEAL = "0002";
    
    private static final String HRET_CODE_SUC = "HX_0000";
    private static final String HRET_CODE_DEAL_2000 = "HX_2000";
    private static final String HRET_CODE_DEAL_2008 = "HX_2008";

	/***
	 * 通过总记录数和每页大小，获取总页数
	 * @param totalRows：总记录数
	 * @param pageSize：每页大小
	 * @return
	 */
	public static  int  getTotalPages(int totalRows,int pageSize){
		return  totalRows% pageSize ==0?totalRows/pageSize:(totalRows/pageSize)+1;
	}
	
	/***
	 * 获取分页起始行
	 * @param curPage：当前页
	 * @param pageSize：每页大小
	 * @return
	 */
	public static int  getStartRow(int curPage,int pageSize){
		return curPage*pageSize;
	}
	
	/***
	 * 获取分页结束行
	 * @param curPage：当前页
	 * @param pageSize：每页大小
	 * @param totalPages：总页数
	 * @return
	 */
	public static int  getEndRow(int curPage,int pageSize,int totalRows){
		int totalPages = totalRows==0?1:getTotalPages(totalRows,pageSize);//若第一次传送时总记录数为0，则系统默认处理为1页
		return  (curPage+1)*pageSize>totalPages ? totalPages : (curPage+1)*pageSize;
	}
	
	/***
	 * 结束行
	 * @param curPage：当前页
	 * @param pageSize：每页大小
	 * @return
	 */
	public static int  getEndRow2(int curPage,int pageSize){
		return (curPage*pageSize)-pageSize;
	}

    /**
     * 好易联返回码转换方法
     * 
     * @title: convertHRetCode
     * @author chenzun
     * @description:
     * @date 2014-12-29 下午5:19:52
     * @param hretCode
     * @return
     * @throws
     */
    public static String convertHRetCode(String hretCode) {
        if (HRET_CODE_SUC.equalsIgnoreCase(hretCode)) {
            return RET_CODE_SUC;
        } else if (HRET_CODE_DEAL_2000.equalsIgnoreCase(hretCode) || HRET_CODE_DEAL_2008.equalsIgnoreCase(hretCode)) {
            return RET_CODE_DEAL;
        } else {
            return RET_CODE_FAIL;
        }
    }
    
    /**
     * 认款流水查询-认款状态转换
     * 将贷后的认款状态映射为支付模块相应状态码
     * @title: changeFlowPayStatusToPay
     * @author chenzun
     * @description:
     * @date 2014-12-30 上午11:14:21
     * @param payStatus
     * @return
     * @throws
     */
    public static String changeFlowPayStatusToPay(String payStatus) {
        if ("0".equals(payStatus)) {
            payStatus = null; // null查全部
        }
        if ("1".equals(payStatus)) {
            payStatus = "9"; // 9表示对应支付模块的认款状态为：1：待认款，5：审批拒绝
        }
        if ("2".equals(payStatus)) {
            payStatus = "3"; // 对应支付模块的 3:待审批
        }
        if ("3".equals(payStatus)) {
            payStatus = "4"; // 对应支付模块的 4：审批通过
        }
        return payStatus;
    }

    /**
     * 认款流水查询-认款状态转换
     * 将支付模块相应状态码为贷后的认款状态映射
     * @title: changeFlowPayStatusToLoan
     * @author chenzun
     * @description:
     * @date 2014-12-30 上午11:14:21
     * @param payStatus
     * @return
     * @throws
     */
    public static String changeFlowPayStatusToLoan(String payStatus) {
        if ("1".equals(payStatus) || "5".equals(payStatus)) {
            payStatus = "1"; // 1：待认款
        }
        if ("3".equals(payStatus)) {
            payStatus = "2"; // 2：已认款
        }
        if ("4".equals(payStatus)) {
            payStatus = "3"; // 3：认款入账
        }
        return payStatus;
    }

    /**
     * 认款结果-认款状态转换
     * 将支付模块认款状态转换为贷后系统的认款状态码
     * @title: changePayStatusToLoan
     * @author chenzun
     * @description:
     * @date 2014-12-30 上午11:16:59
     * @param payStatus
     * @return
     * @throws
     */
    public static String changePayStatusToLoan(String payStatus) {
        if ("3".equals(payStatus)) {
            payStatus = "1"; // 贷后：1-待审批
        }
        if ("4".equals(payStatus)) {
            payStatus = "2"; // 审批通过
        }
        if ("5".equals(payStatus)) {
            payStatus = "3"; // 审批拒绝
        }
        return payStatus;
    }
}
